# 文件操作模块 - Makefile
# ModuleC: 文件IO操作

CC = gcc
CFLAGS = -Wall -g -I../Include $(COMPILE_FLAGS)
AR = ar
ARFLAGS = rcs

# 源文件
SRCS = fileio.c
OBJS = $(SRCS:.c=.o)
TARGET = libfileio.a

# 默认目标
all: $(TARGET)

# 静态库
$(TARGET): $(OBJS)
	@echo "📦 创建文件操作静态库 $@..."
	$(AR) $(ARFLAGS) $@ $(OBJS)
	@echo "✅ 文件操作模块构建完成"

# 编译对象文件
%.o: %.c fileio.h
	@echo "🔨 编译文件操作模块: $<..."
	$(CC) $(CFLAGS) -c $< -o $@

# 清理
clean:
	@echo "🧹 清理文件操作模块构建文件..."
	rm -f $(OBJS) $(TARGET)
	@echo "✅ 文件操作模块清理完成"

# 创建示例数据
create-sample:
	@echo "📝 创建示例数据文件..."
	$(CC) $(CFLAGS) -c fileio.c -o fileio.o
	$(CC) -o create_sample fileio.o -DCREATE_SAMPLE
	./create_sample
	rm -f create_sample fileio.o

# 测试目标
test: $(TARGET)
	@echo "🧪 编译测试程序..."
	$(CC) $(CFLAGS) -c test_fileio.c -o test_fileio.o
	$(CC) -o test_fileio test_fileio.o $(TARGET) $(LDFLAGS)
	@echo "✅ 测试程序编译完成"
	@echo "🚀 运行测试: ./test_fileio"

# 调试信息
debug:
	@echo "=== 文件操作模块调试信息 ==="
	@echo "编译器: $(CC)"
	@echo "编译选项: $(CFLAGS)"
	@echo "源文件: $(SRCS)"
	@echo "目标文件: $(OBJS)"
	@echo "输出库: $(TARGET)"

.PHONY: all clean create-sample test debug
